package flex.cc.fenfa.dao;

import java.util.Map;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import flex.cc.fenfa.dto.RuleMainEntity;
import flex.cc.uac.entity.UacUserEntity;

import org.springframework.stereotype.Repository;

/**
*
* @author WANGCONG
* 2021年10月12日下午3:02:32
* @desc 分发规则数据层
*/
@Mapper
@Repository
public interface RuleMainDao extends BaseMapper<RuleMainEntity>{

	/**
	*
	* @author WANGCONG
	* 2021年10月12日下午3:36:12
	* @desc 分发规则状态切换
	*/
	boolean modifyRuleStatus(RuleMainEntity ruleDto);

	/**
	*
	* @author WANGCONG
	* 2021年10月12日下午4:07:33
	* @desc 分页查询规则
	*/
	IPage<RuleMainEntity> queryListWithPage(Page<UacUserEntity> page, RuleMainEntity ruleDto);

	/**
	 * 
	 * @author WANGCONG
	 * 2021年10月13日上午9:03:52
	 * @desc 根据规则名称查看数量，校验规则名称唯一性
	 */
	int findCountByRuleName(RuleMainEntity vo);
	
	/**
	 * 
	 * @author WANGCONG
	 * 2021年10月13日上午9:12:52
	 * @desc 插入
	 */
	int insert(RuleMainEntity ruleDto);

	/**
	 * 
	 * @author WANGCONG
	 * 2021年10月13日上午9:13:08
	 * @desc 更新
	 */
	int update(RuleMainEntity ruleDto);

	/**
	 * 
	 * @author WANGCONG
	 * 2021年10月14日下午1:55:48
	 * @desc 根据规则Id查询
	 */
	RuleMainEntity queryByRuleId(String ruleId);

	/**
	 * 
	 * @author WANGCONG
	 * 2021年10月17日下午5:37:21
	 * @desc 根据渠道方、省市区、服务类型匹配分发规则
	 */
	RuleMainEntity choiceServicer(@Param("qv") Map<String, Object> paramsMap);

	/**
	 * @description 根据救援商id查询对应的规则是否为空或者0%，用于禁用救援商时判断【2.2-服务包配置需求】
	 * @param serviceId 救援商id
	 * @return 对应的规则名称
	 * @author wkangle
	 * @time 2022/03/07 0007 10:00
	 * @exception/throws
	*/
	String queryRuleNamesByServiceId(String serviceId);

}
